package com.itfenghuang.day02;

public class A01_二进制 {

    public static void main(String[] args) {
        System.out.println("靓仔");


        //1.二进制 转 十进制
/*          二进制             十进制
             0000 0             235
             0001 1             200 + 30 + 5
             0010 2             2*10**2 + 3*10**1 + 5*10**0
             0011 3
             0100 4
             0101 5
               1*2**3   1*2**2   1*2**1    1*2**0
                  8        4        2         1
*/
            /*2. 八进制转1十进制
            1       2       4
            64      16      4
         1*8**2 +  2*8**1 +  4*8**0
             */

            /*  十六进制
                23f
             2*16**2  +  3*16**1 + 15*16**0

             */

            //4.  二进制快速转八进制

            //5. 十进制 转 二进制 不断对2求余 把余数反过来 就是2进制


             //6. 查看数字在程序中的二进制存储
                //返回传入数据的二进制表示形式 ''一个  多个""
                String xx = Integer.toBinaryString('a');
                System.out.println(xx);

//           八进制:  Integer.toOctalString();
//           十六进制: Integer.toHexString();


            //7 源码  补码  反码
//            源码:
//            反码: 全部取反  符号位除外
//            补码: 反码+1

//            在计算器底层全部用 补码 表示数字的:
//            正数: 补码= 源码
//            负数: 补码 等于 源码 取反 + 1

//            补码 =  源码  取反 后 + 1
//            源码 =  补码 -1  后 取反


    }
}

